package cloud.take.off.mybatis.support;

import java.util.List;

/**
 * @description:
 * @author: gangan
 * @create: 2021-07-28 16:52
 */
public interface BaseWrapper<E, D, V> {


    /**
     * DTO转Entity
     *
     * @param dto /
     * @return /
     */
    E dtoToEntity(D dto);

    /**
     * Entity转DTO
     *
     * @param entity /
     * @return /
     */
    D entityToDto(E entity);

    /**
     * DTO集合转Entity集合
     *
     * @param dtoList /
     * @return /
     */
    List<E> dtoToEntity(List<D> dtoList);

    /**
     * Entity集合转DTO集合
     *
     * @param entityList /
     * @return /
     */
    List<D> entityToDto(List<E> entityList);

    /**
     * Entity转VO
     *
     * @param entity /
     * @return /
     */
    V entityToVO(E entity);

    /**
     * Entity集合转VO集合
     *
     * @param entityList /
     * @return /
     */
    List<V> entityToVO(List<E> entityList);

    /**
     * VO转Entity
     * @param vo
     * @return
     */
    E voToEntity(V vo);

    /**
     * VO集合转Entity集合
     * @param voList
     * @return
     */
    List<E> voToEntity(List<V> voList);
}
